perm filename CMUIO.FAI[EXP,LCS] blob
sn#153755 filedate 1975-07-17 generic text, type T, neo UTF8
00100 TITLE CMUIO
00200 INTERNAL PUTFIL,FASTOUT,FINFIL
00210 INTERNAL ZBIT,GETTAP,TOTAPE,FINTAP,BACKSP,PUTMUS
00307
00310 CH←12
00355 CH2←11
00400
00500 ;CALL PUTMUS(<FILE>) (WILL PUT .MUS EXTENSION)
00600
00700 PUTMUS: 0
00800 MOVE 0,@0(16)
00900 MOVEM FILNAM
01000 JSA 16,INTFIL
01100 MOVE 0,[SIXBIT/MUS/]
01200 JRST PFL
01300
04900 ;CALL PUTFIL(<FILE>)
05000
05100 PUTFIL: 0
05200 MOVE 0,@0(16)
05300 MOVEM FILNAM
05400 JSA 16,INTFIL
05500 MOVE 0,[SIXBIT/DMD/]
05600 PFL: MOVEM 0,DIR+1
05700 SETZM DIR+2
05800 SETZM DIR+3
05900 ENTER CH,DIR
06000 0
06100 JRA 16,1(16)
06200
06300
06400 INTFIL: 0
06500 MOVEI REGS
06600 BLT REGS+3
06700 INIT CH,17
06800 SIXBIT/DSK/
06900 0
07000 0
07100 MOVE 0,FILNAM#
07200 MOVEM 0,FN#
07300 MOVE 1,[POINT 7,FN]
07400 MOVE 2,[POINT 6,DIR]
07500 SETZM DIR
07600 MOVEI 3,5
07700 INTF1: ILDB 0,1
07800 CAIN 0," "
07900 JRST INTF2
08000 SUBI 0,40
08100 IDPB 0,2
08200 SOJG 3,INTF1
08300 INTF2: HRLZI REGS
08400 BLT 3
08500 JRA 16,0(16)
08600
08700 INTFI2: 0
08800 MOVEI REGS
08900 BLT REGS+3
09000 INIT CH2,617
09100 SIXBIT/MTA0/
09200 0
09300 0
09400 MOVE 0,FILNA2#
09500 MOVEM 0,FN2#
09600 MOVE 1,[POINT 7,FN2]
09700 MOVE 2,[POINT 6,DIR]
09800 SETZM DIR
09900 MOVEI 3,5
10000 JRST INTF1
10100
16000
16050 DIR: BLOCK 4
16100
16200 ;CALL FASTOUT(<ARRAY>,<NO. OF WORDS>)
16300
16400 FASTOUT: 0
16500 HRRZ 0,0(16)
16600 SUBI 0,1
16700 MOVEM 0,COM
16800 MOVN 0,@1(16)
16900 HRLM 0,COM
17000 OUTPUT CH,COM
17100 STATZ CH,740000
17200 0
17300 JRA 16,2(16)
17400
17700
17800
17900 ;CALL FINFIL
18000
18100 FINFIL: 0
18200 CLOSE CH,0
18300 STATZ CH,740000
18400 0
18500 RELEASE CH,0
18600 JRA 16,0(16)
18700
19600
20300
20400 ;'CH' IS USED IN GETTAP, TOTAPE
20500 ;'CH2' " " " MTA1, INMTA1, GETFI2, FASTI2
20600
20900
21800 ;CALL GETTAP
21900
22000 GETTAP: 0 ;USES TOTAPE, CH. READS OR WRITES MTA0.
22100 INIT CH,617
22200 SIXBIT/MTA0/
22300 0
22400 HALT
22500 JRA 16,0(16)
22600
22700 ;CALL TOTAPE(<ARRAY>,<NO.OF WORDS>) WRITES ON MAGTAPE
22800
22900 TOTAPE: 0
23000 HRRZ 0,0(16)
23100 SUBI 0,1
23200 MOVEM 0,COM
23300 MOVN 0,@1(16)
23400 HRLM 0,COM
23500 OUTPUT CH,COM
23600 STATZ CH,740000
23700 0
23800 JRA 16,2(16)
23900
24000 ; CALL FINTAP
24100
24200 FINTAP: 0
24300 CLOSE CH,0
24400 STATZ CH,740000
24500 0
24600 RELEASE CH,0
24700 JRA 16,0(16)
24800
24900 ; CALL BACKSP
25000
25100 BACKSP: 0
25200 INIT CH,617
25300 SIXBIT/MTA0/
25400 0
25500 HALT
25600 MTAPE CH,7
25700 JRA 16,0(16)
25800
25900 ; CALL ZBIT(<INPUT ARRAY>,<OUTPUT ARRAY>)
26000 ; (256 WDS) (512 WDS)
26100
26200 ZBIT: 0
26300 MOVE 2,(16)
26400 MOVE 1,1(16)
26500 HRLI 2,-=256
26600
26700 LOOP: HLRE 0,(2)
26800 FSC 0,233 ;FLOAT IT
26900 MOVEM 0,(1) ; GETS 512 18-BIT SAMPLES OUT OF 256 WDS.
27000 HRRE 0,(2)
27100 FSC 0,233
27200 MOVEM 0,1(1)
27300 ADDI 1,2
27400 AOBJN 2,LOOP
27500 JRA 16,1(16)
27600
27700
27800 BLKS←=1
27900 REGS: BLOCK 20
28000
34200 COM: OCT 0,0
34300 ;;;COM1: 0
34400 BLKNUM: 0
34500
34600 END